查看原文
其他

我的深度学习入门路线

王柳 AI有道 2019-06-21
点击上方“AI有道”,选择“置顶公众号”

关键时刻,第一时间送达!

阅读本文需要 6 分钟


1. 前言

说实话,红色石头也是一个美剧迷,特别是一些烧脑的美剧,更是一追再追。前段时间,《西部世界》第二季也完结了。

红色石头一鼓作气,看完之后,大呼过瘾,深深地被其中栩栩如生的人工智能机器人所吸引。不禁感叹:现实世界真的会出现这样厉害的人工智能吗?

这虽然是一个看似遥远的事情,但也真的不好说没有可能!纵观这几年,深度学习发展非常迅速,发展势头一直高歌猛进。

无论是 AlphaGo 最终以 4 :1 战胜李世石,还是苹果 Siri、谷歌翻译、自动驾驶,等等。

深度学习无不在影响着我们的日常生活和行为方式。因此,可以毫不夸张地说,我们有理由相信《西部世界》中的人工智能有望成为现实,说不定哪一天,你的同事就是一个超级人工智能机器人!

深度学习,以深而复杂的神经网络模型为基础,更能挖掘海量数据深层蕴藏的数据规律,具备强大的学习能力。

可以毫不夸张地说,深度学习彻底改变了传统机器学习算法的解决问题方式。下面,我用一张图来做比较。

上图中的 4 条曲线,从下往上分别为传统机器学习算法、规模较小的神经网络、规模中等的神经网络、规模较大的神经网络。

从每条曲线的趋势可以看出,当数据量较少的时候,传统机器学习模型的表现是不错的,与神经网络模型差别不大。

但随着数据量越来越大,传统机器学习模型的性能表现开始增长缓慢,似乎到达了瓶颈。

而神经网络模型的性能仍然表现出较快的上升趋势,且规模越大,性能提升越明显。

这主要是因为深度学习模型网络结构更加复杂,更能从大数据中提取有效的特征,准确性较高。

所以,近些年来,深度学习在处理大数据和建立复杂准确的学习模型方面,有着非常不错的表现。

在机器视觉、图像处理方面,深度学习可以说是带来了革命性的变化。例如,在全球知名的图像识别竞赛 ILSVRC 中,深度学习模型,尤其是各种 CNN 模型在错误率方面,不断刷新纪录,相比之前传统机器学习算法,性能提升有质的飞跃。

从 2010 年开始,ILSVRC 有人开始使用 CNN 模型。转折点是 2012 年, AlexNet 的出现,直接将错误率降低了近 10 个百分点。这是之前所有机器学习模型无法做到的。

2015 年,包含 152 层神经元的 ResNet 模型,竟然将错误率降低至 3.57%,这甚至比人类肉眼识别的准确率还高!

除了在图像识别方面,深度学习在机器翻译领域也取得了飞跃式的发展。基于 RNN 的机器翻译最典型的代表就是谷歌翻译,让机器能够在深度学习中不断完善答案,给用户最想要的信息。

说白了就是更智慧、更精准了。直接改善了之前逐词直译的效果,而是升级为以整个句子为单位进行翻译。从性能上来说,谷歌翻译整合神经网络,翻译质量已经接近人工笔译。

不止这些,深度学习在诸如自动驾驶、推荐系统、人脸识别等领域都取得了重大进展。

近些年来,深度学习发展太快了,正在慢慢改变着我们的生活方式。深度学习技术日新月异,对相关人才的需求也越来越大。

所有的互联网公司,例如 Google、 微软、百度、腾讯等巨头,无不在布局人工智能技术和市场。各大公司也迅速开展了人工智能人才争夺战。

百度、腾讯、阿里巴巴、京东等互联网巨头甚至都在美国硅谷不惜高薪挖掘人工智能人才。现在北京、上海等地,深度学习算法岗位,年薪 3、40w 都十分正常!

不仅如次,人工智能连续两年都被写入政府工作报告中,可见国家对人工智能是相当重视的。

就在今年,我国第一本面向中学生的人工智能教材——《人工智能基础(高中版)》正式发布,人工智能相关课程已经进入高中课堂。

面对这样的人工智能趋势和浪潮,为了不被新技术淘汰,为了获得更好的工作机会和薪资收入,实现人生价值,我们更应该深入了解深度学习,利用深度学习解决实际问题,成为一名优秀的深度学习专家。

2. 如何进行深度学习?

深度学习,是机器学习的一个重要分支和延伸,是包含多隐层的神经网络结构。

深度学习通过组合低层特征形成更加抽象的高层表示属性类别或特征,从而学习到数据本身最关键的特征。

简单来说,深度学习的核心结构是神经网络,深入了解神经网络,是我们掌握深度学习本质的关键因素。

下面是红色石头总结的深度学习入门路线图:

2.1 编程语言与开发工具

深度学习首选 Python,Python 已经成为深度学习主导性的编程语言。而且,现在许多主流的深度学习框架。

例如 PyTorch、TensorFlow 也都是基于 Python 的。Anaconda 作为 Python 的一个集成管理工具,它把 Python 相关数据计算与分析科学包都集成在了一起,省去了各个安装的麻烦,非常方便。

而且,Anaconda 自带了 Jupyter Notebook,Jupyter Notebook 是一个非常强大的工具,允许使用者为数据分析、教育、文件等任何你可以想到的内容创建漂亮的交互式文档,已迅速成为数据分析、机器学习、深度学习的必备工具。

2.2 夯实深度学习理论基础

有人说深度学习就像一个黑匣子,完全不知道内部发生了什么。也有人说深度学习不需要数学理论,只要会调参数就行了。其实,这两种说法都有失偏颇。掌握基本的深度学习理论非常重要。

例如神经网络的正向传播过程,激活函数的选择与比较,反向传播参数优化的过程,等等。

只有对神经网络模型结构和推导过程有清晰的认识才能更好地建立模型优化直觉,构建性能良好的神经网络模型。而不是做只会使用框架和库,知其然不知其所以然的“调包侠”。

2.3 积累丰富的实战

俗话说:纸上得来终觉浅,觉知此事要躬行!理论与模型的建立都是为了更好地实践,为了解决实际问题。深度学习也是这样,掌握每个理论知识后,更重要的是将理论用于实践。

例如,使用深度学习模型解决图像识别、语音识别等,或者参加 kaggle。通过实战,更能加深自己的理解,帮助自己更加熟练地掌握深度学习应用技巧。

2.4 灵活使用深度学习框架

使用深度学习框架,俗话说灵活地使用“轮子”,方便我们构建更大、更复杂的深度学习模型,能帮助我们更快地构建模型来解决实际问题。

当然,这一步,个人觉得还是要建立在具备扎实的深度学习理论基础上。常用的深度学习框架有 TensorFlow、PyTorch、Keras 等。

简单来说, TensorFlow 适合工业应用构建大型项目,PyTorch 适合学术研究构建小型项目。

个人推荐使用 PyTorch,原因很简单,因为简单易懂。而且,它还弥补了 Tensorflow 静态构图的致命弱点。PyTorch 是可以构建动态计算图。

也就是说你可以随时改变神经网络的结构,而不影响其计算过程。而 Tensorflow 这种静态图模块,一旦搭建好了神经网络, 你想修改结构也不行。

3. 红色石头的学习路线

知道红色石头的读者可能清楚,我比较注重深度学习理论与实践的结合,主张使用通俗、白话的的语言来讲解机器学习、深度学习知识点。这个世界没有学不会的知识,只缺少正确的入门途径!

为了帮助大家更好地入门深度学习,我梳理了以下知识点网络:

  • 一、深度学习预备知识

    • 01:深度学习概述

    • 02:深度学习 Python 必备知识点

    • 03:Anaconda 与 Jupyter Notebook

    • 04:深度学习框架 PyTorch

  • 二、 深度学习核心理论与实战

    • 05:神经网络基础知识

    • 06:浅层神经网络(NN)

    • 07:项目实战:自己动手写一个神经网络模型

    • 08:深层神经网络(DNN)

    • 09:项目实战:让你的神经网络模型越来越深

    • 10:优化神经网络:如何防止过拟合

    • 11:优化神经网络:梯度优化

    • 12:优化神经网络:网络初始化技巧与超参数调试

    • 13:构建神经网络模型的实用建议

    • 14:项目实战:深度优化你的神经网络模型

  • 三、 卷积神经网络 CNN 与 循环神经网络 RNN

    • 15:卷积神经网络(CNN)

    • 16:项目实战:利用 PyTorch 构建 CNN 模型

    • 17:循环神经网络(RNN)

    • 18:项目实战:利用 PyTorch 构建 RNN 模型

重点来了,为了更加详细地对深度学习进行理论解析,讲解实战经验。红色石头已经在 CSDN 的 GitChat 达人课上发布了《深度学习从入门到 Python 实战》课程,将会带大家详细梳理深度学习知识体系。下面是关于本达人课的介绍。

课程内容:

第一部分(第01-04课),主要介绍一些深度学习的预备知识。对深度学习进行简要概述,列举重要的 Python 基础知识,手把手教你搭建本课程需要的开发环境,使用 Anaconda 平台,重点介绍 Jupyter Notebook 的使用以及知名的深度学习框架 PyTorch。

第二部分(第05-14课),主要介绍神经网络的基础,以最简单的两层神经网络入手,详细推导正向传播与反向梯度的算法理论。

然后,从简单网络推导至深度网络,并重点介绍神经网络优化算法及构建神经网络模型的实用建议。每一部分都会使用 Python 构建神经网络模型来解决实际问题。

第三部分(第15-18课),主要介绍卷积神经网络 CNN 和循环神经网络 RNN,重点剖析两种模型的数学原理和推导过程。

最后,利用越来越火的深度学习框架 PyTorch 分别构建 CNN 和 RNN 模型,解决实际问题。

课程特色:

  • 内容深入浅出、理论推导详细。

  • 理论结合实践,在代码实践中巩固知识。

  • 知识体系完善,深度学习知识点各个击破。

本课程将针对深度学习的复杂性和难点进行讲解和分析,主要体现在神经网络模型的数学推导、神经网络模型的优化,以及如何构建一个优秀的深度学习模型解决实际问题。希望通过课程内容的学习,大家可以扫清学习过程中的障碍,再上新台阶。

订阅福利:

  • 原价 39.99,GitChat 新用户购买立享五折优惠。

  • 订购本课程可获得专属海报,分享专属海报每成功邀请一位好友购买,即可获得 25% 的返现奖励,多邀多得,上不封顶,立即提现。

  • 提现流程:请在 GitChat 服务号中点击“我-我的邀请-提现”进行提现。


感兴趣的请扫码试读


点击阅读原文

    您可能也对以下帖子感兴趣

    文章有问题?点此查看未经处理的缓存